package com.tengju.bff.interfaces.covercharge.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.idanchuang.component.base.JsonResult;
import com.tengju.bff.interfaces.covercharge.entity.po.ServiceContract;
import com.tengju.bff.interfaces.covercharge.entity.vo.contract.*;
import com.tengju.bff.interfaces.shared.ApiResponse;

import java.util.HashMap;


/**
 * @author liang_shi
 * @date 2020/7/14 10:41
 * @description 合同服务
 */
public interface IServiceContractService extends IService<ServiceContract> {

    /**
     * 申请证书
     */
    void applyCertificate(String platformCode, Integer idCode, Integer from, ApplyCertificateReqVo reqVo);

    /**
     * 通知证书申请结果
     */
    void notifyCertApply(HashMap resultBizMap);

    /**
     * 申请证书结果更新
     */
    //void dealMqCertApplyMessage(Long deliveryTag, Channel channel, RabbitMqMessage message);

    /**
     * 申请证书结果校验
     */
    boolean checkCert(String platformCode, Integer idCode, SignContractReqVo reqVo, String idCardNo,
                      String companyNo, boolean isSuc);

    /**
     * 签约合同
     */
    ApiResponse<SignContractResVo> signContract(String platformCode, Integer idCode, SignContractReqVo reqVo);

    /**
     * 通知合同签约结果
     */
    void notifyContractSign(HashMap resultBizMap);

    /**
     * 锁定合同签约
     */
    ApiResponse<Boolean> lockSignContract(String platformCode, Integer idCode, String contractId);

    /**
     * 查询签约合同信息
     */
    SignContractInfoResVo querySignContractInfo(String platformCode, Integer idCode, SignContractInfoReqVo reqVo);

}
